package com.example.myapplication.ui;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.app.AlertDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

import com.example.myapplication.R;
import com.example.myapplication.tools.StringUtils;
import com.example.myapplication.tools.webservice.SoapParam;
import com.example.myapplication.tools.webservice.WebServiceHelper;

import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;

public class WebServiceActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_service);
    }

    public void heizhiQrCode(View v){
        //读虚拟卡信息    通过二维码获取对应虚拟卡的信息
        //GetVirtualCardInfoByQRCode(LPCSTR sBarCode, DOWNVCINFO downTotalInfo);

        //参数
        //sBarCode  26位二维码
        //downTotalInfo指向虚拟卡信息结构的指针，参见结构的详细描述

        //返回值
        //0	成功读取虚拟卡信息，信息存放在downInfo中
        //－1  参数异常
        //-2	  调用WebService失败
        //-3	  获取虚拟卡信息错误
        //-11  读卡过程异常

//        typedef struct tagDownVCInfo
//        {
//            char outid[20];	//学号
//            char scardsnr[30];	//虚拟卡唯一号
//            long customerid;//帐号
//            char name[40];	//姓名
//            long sex;		//性别 (0男,1女)
//            char custdptname[40]; //部门
//            long status; 	 //虚拟卡状态（1--正常，2--注销，3--挂失，4--冻结）
//            char opendt[20]; //开户日期
//            char expirydt[20]; //失效日期
//            long totalmainoddfare;//账户主钱包余额(分)
//            long totalsuboddfare;//账户补助钱包余额(分)
//            long totaloddfare;//账户总余额(分)
//        }DOWNVCINFO;

//        String httpPath = "http://10.1.11.5/WebService/Newcapec.eCard.ProxyWebService.asmx";
//        RequestParams params = new RequestParams(httpPath + "/GetVirtualCardInfoByQRCode");
//
//        EditText etQrcode = findViewById(R.id.et_qrcode);
//        String qrcode = etQrcode.getText().toString().trim();
//        if(qrcode.length() > 0){
//
//        }else{
//            qrcode = "17790001511106236296227795";
//        }
//        params.addQueryStringParameter("sBarCode",qrcode);
//        params.addHeader("sBarCode",qrcode);
//        params.addBodyParameter("sBarCode",qrcode);
//        params.addParameter("sBarCode",qrcode);
//
//        x.http().get(params, new Callback.CommonCallback<String>() {
//            @Override
//            public void onSuccess(String result) {
//                showDialog(result);
//
//                //返回值
//                //0	成功读取虚拟卡信息，信息存放在downInfo中
//                //－1  参数异常
//                //-2	  调用WebService失败
//                //-3	  获取虚拟卡信息错误
//                //-11  读卡过程异常
//                JSONObject jObj = JSONObject.parseObject(result);
//                if(jObj.containsKey("status") && jObj.getInteger("status") == 0){
//
//                }else{
//
//                }
//            }
//
//            @Override
//            public void onError(Throwable ex, boolean isOnCallback) {
//                showDialog("访问错误" + ex.getMessage());
//            }
//
//            @Override
//            public void onCancelled(CancelledException cex) {
//
//            }
//
//            @Override
//            public void onFinished() {
//            }
//        });
    }


    String WebServicePath = "http://10.1.11.5/WebService/Newcapec.eCard.ProxyWebService.asmx";
    public void heizhiQrCodeTemp(View v){
        WebServiceHelper.ISInit=false;
        WebServiceHelper.init(WebServicePath, WebServicePath, false, null);
//        String httpPath = "http://10.1.11.5/WebService/Newcapec.eCard.ProxyWebService.asmx";
//        RequestParams params = new RequestParams(httpPath + "/GetVirtualCardInfoByQRCode");

        Handler handler = new Handler(){
            @Override
            public void handleMessage(@NonNull Message msg) {
                String result = StringUtils.transString(msg.obj);
                TextView tv = findViewById(R.id.tv_qrcode);
                tv.setText(result);
            }
        };
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                List<SoapParam> params = new ArrayList<>();
                EditText etQrcode = findViewById(R.id.et_qrcode);
                String qrcode = etQrcode.getText().toString().trim();
                if(qrcode.length() > 0){
                }else{
                    qrcode = "17790001511106236296227795";
                }
                params.add(new SoapParam("sBarCode", qrcode));
                Object result = WebServiceHelper.GetResponse("GetVirtualCardInfoByQRCode", params);
                Message msg = new Message();
                msg.what = 0 ;
                msg.obj = result;
                handler.sendMessage(msg);
            }
        },1000);
    }


    private void showDialog(String content){
        AlertDialog.Builder builder = new AlertDialog.Builder(WebServiceActivity.this);
        builder.setTitle("返回信息");
        builder.setMessage(content);
        builder.setPositiveButton("确定",null);
        AlertDialog ad = builder.create();
        ad.show();
    }

}